package com.fowo.api.model.amazon.order.list;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Data;

/**
 * 亚马逊订单 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Data
public class AmazonOrderListImportPo {

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String sellerName;

  /** 国家 */
  @ExcelProperty("国家")
  @Size(max = 50, message = "国家长度不能超过50")
  private String country;

  /** 订单号 */
  @ExcelProperty("订单号")
  @Size(max = 50, message = "订单号长度不能超过50")
  private String amazonOrderId;

  /** 标题 */
  @ExcelProperty("标题")
  @Size(max = 50, message = "标题长度不能超过50")
  private String title;

  /** ASIN */
  @ExcelProperty("ASIN")
  @Size(max = 50, message = "ASIN长度不能超过50")
  private String asin;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String msku;

  /** 数量 */
  @ExcelProperty("数量")
  @Size(max = 50, message = "数量长度不能超过50")
  private String quantityOrdered;

  /** 品名 */
  @ExcelProperty("品名")
  @Size(max = 50, message = "品名长度不能超过50")
  private String producName;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 买家姓名 */
  @ExcelProperty("买家姓名")
  @Size(max = 50, message = "买家姓名长度不能超过50")
  private String buyerName;

  /** 买家邮件 */
  @ExcelProperty("买家邮件")
  @Size(max = 50, message = "买家邮件长度不能超过50")
  private String buyerEmail;

  /** 订单总金额 */
  @ExcelProperty("订单总金额")
  @Size(max = 50, message = "订单总金额长度不能超过50")
  private String orderTotalAmount;

  /** 订购时间 */
  @ExcelProperty("订购时间")
  @Size(max = 50, message = "订购时间长度不能超过50")
  private String purchaseDateLocal;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;

  /** 请求评论状态 */
  @ExcelProperty("请求评论状态")
  @Size(max = 50, message = "请求评论状态长度不能超过50")
  private String requestCommentStatus;

  /** 状态 */
  @ExcelProperty("状态")
  @EnumsString(
    value = { "Unshipped", "Shipped" },
    message = "状态只能是“Unshipped”, “Shipped”中的一个"
  )
  private String orderStatus;

  /** 发货时限 */
  @ExcelProperty("发货时限")
  @Size(max = 50, message = "发货时限长度不能超过50")
  private String earliestShipDate;

  /** 发货时限（UTC） */
  @ExcelProperty("发货时限（UTC）")
  @Size(max = 50, message = "发货时限（UTC）长度不能超过50")
  private String earliestShipDateUtc;

  /** 发货渠道 */
  @ExcelProperty("发货渠道")
  @EnumsString(
    value = { "AFN", "MFN" },
    message = "发货渠道只能是“AFN”, “MFN”中的一个"
  )
  private String fulfillmentChannel;

  /** 邮编 */
  @ExcelProperty("邮编")
  @Size(max = 50, message = "邮编长度不能超过50")
  private String postalCode;

  /** 电话 */
  @ExcelProperty("电话")
  @Size(max = 50, message = "电话长度不能超过50")
  private String phone;

  /** 是否多渠道订单 */
  @ExcelProperty("是否多渠道订单")
  @EnumsString(
    value = { "多渠道订单", "普通订单" },
    message = "是否多渠道订单只能是“多渠道订单”, “普通订单”中的一个"
  )
  private String isMcfOrder;

  /** 是否评测订单 */
  @ExcelProperty("是否评测订单")
  @IntegerString(message = "是否评测订单数值格式不正确", label = "是否评测订单")
  private String isAssessed;

  /** 币种 */
  @ExcelProperty("币种")
  @Size(max = 50, message = "币种长度不能超过50")
  private String orderTotalCurrencyCode;

  /** 销售渠道 */
  @ExcelProperty("销售渠道")
  @Size(max = 50, message = "销售渠道长度不能超过50")
  private String salesChannel;

  /** 物流运单号 */
  @ExcelProperty("物流运单号")
  @Size(max = 50, message = "物流运单号长度不能超过50")
  private String trackingNumber;

  /** 退款金额 */
  @ExcelProperty("退款金额")
  @Size(max = 50, message = "退款金额长度不能超过50")
  private String refundAmount;

  /** 下单时间（UTC） */
  @ExcelProperty("下单时间（UTC）")
  @Size(max = 50, message = "下单时间（UTC）长度不能超过50")
  private String purchaseDateLocalUtc;

  /** 发货日期 */
  @ExcelProperty("发货日期")
  @Size(max = 50, message = "发货日期长度不能超过50")
  private String shipmentDate;

  /** 发货日期（UTC） */
  @ExcelProperty("发货日期（UTC）")
  @Size(max = 50, message = "发货日期（UTC）长度不能超过50")
  private String shipmentDateUtc;

  /** 发货日期（站点时间） */
  @ExcelProperty("发货日期（站点时间）")
  @Size(max = 50, message = "发货日期（站点时间）长度不能超过50")
  private String shipmentDateLocal;

  /** 订单更新站点时间 */
  @ExcelProperty("订单更新站点时间")
  @Size(max = 50, message = "订单更新站点时间长度不能超过50")
  private String lastUpdateDate;

  /** 订单更新站点时间（UTC） */
  @ExcelProperty("订单更新站点时间（UTC）")
  @Size(max = 50, message = "订单更新站点时间（UTC）长度不能超过50")
  private String lastUpdateDateUtc;

  /** 付款时间 */
  @ExcelProperty("付款时间")
  @Size(max = 50, message = "付款时间长度不能超过50")
  private String postedDate;

  /** 付款时间（UTC） */
  @ExcelProperty("付款时间（UTC）")
  @Size(max = 50, message = "付款时间（UTC）长度不能超过50")
  private String postedDateUtc;

  /** 下单时间 */
  @ExcelProperty("下单时间")
  @Size(max = 50, message = "下单时间长度不能超过50")
  private String purchaseDate;

  /** 下单时间（UTC） */
  @ExcelProperty("下单时间（UTC）")
  @Size(max = 50, message = "下单时间（UTC）长度不能超过50")
  private String purchaseDateUtc;

  /** 订单修改时间 */
  @ExcelProperty("订单修改时间")
  @Size(max = 50, message = "订单修改时间长度不能超过50")
  private String gmtModified;

  /** 订单修改时间（UTC） */
  @ExcelProperty("订单修改时间（UTC）")
  @Size(max = 50, message = "订单修改时间（UTC）长度不能超过50")
  private String gmtModifiedUtc;

  /** 配送服务 */
  @ExcelProperty("配送服务")
  @Size(max = 50, message = "配送服务长度不能超过50")
  private String shipServiceLevel;

  /** 地址1 */
  @ExcelProperty("地址1")
  @Size(max = 50, message = "地址1长度不能超过50")
  private String addressLine1;

  /** 收件人 */
  @ExcelProperty("收件人")
  @Size(max = 50, message = "收件人长度不能超过50")
  private String name;

  /** 退款状态 */
  @ExcelProperty("退款状态")
  @EnumsString(
    value = { "退款", "未退款", "退款完成" },
    message = "退款状态只能是“退款”, “未退款”, “退款完成”中的一个"
  )
  private String isReturn;

  /** 是否换货订单 */
  @ExcelProperty("是否换货订单")
  @EnumsString(
    value = { "是", "否" },
    message = "是否换货订单只能是“是”, “否”中的一个"
  )
  private String isReplacementOrder;

  /** 是否已换货 */
  @ExcelProperty("是否已换货")
  @EnumsString(value = { "换货" }, message = "是否已换货只能是“换货”中的一个")
  private String isReplacedOrder;

  /** 是否为B2B订单 */
  @ExcelProperty("是否为B2B订单")
  @EnumsString(value = { "B2B" }, message = "是否为B2B订单只能是“B2B”中的一个")
  private String isBusinessOrder;

  /** 店铺id */
  @ExcelProperty("店铺id")
  @Size(max = 50, message = "店铺id长度不能超过50")
  private String shopIdShopName;

  @ExcelIgnore
  @Schema(title = "店铺id")
  private String shopId;

  /** 店铺编码 */
  @ExcelProperty("店铺编码")
  @Size(max = 50, message = "店铺编码长度不能超过50")
  private String shopCode;
}
